#include "CvGameCoreDLL.h"
#include "CyCity.h"
#include "CyPlot.h"
#include "CyArea.h"
#include "CvInfos.h"

//# include <boost/python/manage_new_object.hpp>
//# include <boost/python/return_value_policy.hpp>

//
// published python interface for CyCity
//

// ************************
// Added for Planetfall
// ************************


void CyCityPythonInterface2(python::class_<CyCity>& x)
{
	OutputDebugString("Python Extension Module - CyCityPythonInterface2\n");

	x
		//Local City resources
		.def("getNumCityBonuses", &CyCity::getNumCityBonuses, "int (eIndex)")

		// Special Ability Installation
		.def("canInstall", &CyCity::canInstall, "bool (iUnitID, int /*PromotionTypes*/ iIndex, bool bContinue)")
		.def("getPromotionInstallationProductionTurnsLeft", &CyCity::getPromotionInstallationProductionTurnsLeft, "int (iUnitID, int /*PromotionTypes*/ iIndex, bool bContinue)")

		// Buildings increase production of unit combat types with resources.
		.def("getNumBonusClasses", &CyCity::getNumBonusClasses, "int (int /*BonusClassTypes*/ iBonusClass) - Returns how many bonuses of class iBonusClass this city is connected to.")
		.def("hasBonusClass", CyCity::hasBonusClass, "bool (int /*BonusClassTypes*/ iBonusClass) - Returns true if the city is connected to at least one bonus of the class iBonusClass.")
		
		// City Planet Value
		.def("getFeatureGoodPlanet", CyCity::getFeatureGoodPlanet, "int () - Returns the amount of good planet from features found near the city")
		.def("getFeatureBadPlanet", CyCity::getFeatureBadPlanet, "int () - Returns the amount of bad planet from features found near the city")
	
		.def("getBuildingGoodPlanet", CyCity::getBuildingGoodPlanet, "int () - Returns the amount of good planet from buildings in the city")
		.def("getBuildingBadPlanet", CyCity::getBuildingBadPlanet, "int () - Returns the amount of bad planet from buildings in the city")
	
		.def("getBonusGoodPlanet", CyCity::getBonusGoodPlanet, "int () - Returns the amount of good planet from bonus resources connected to the city")
		.def("getBonusBadPlanet", CyCity::getBonusBadPlanet, "int () - Returns the amount of bad planet from bonuse resources connected to the city")

		.def("getBonusGoodPlanet", CyCity::getSpecialistGoodPlanet, "int () - Returns the amount of good planet from Specialists")
		.def("getBonusBadPlanet", CyCity::getSpecialistBadPlanet, "int () - Returns the amount of bad planet from Specialists")

		.def("getGoodPlanet", CyCity::getGoodPlanet, "int () - Returns the total amount of good planet for the city")
		.def("getBadPlanet", CyCity::getBadPlanet, "int () - Returns the total amount of bad planet for the city (will be a positive number)")
		.def("getEcoDamage", CyCity::getEcoDamage, "int () - Returns the total amount of eco damage for the city (+/-)")

		;
}

// ************************
// End Added for Planetfall
// ************************
